CREATE PROCEDURE [dbo].[PDA_UpdateTmpHeadH]
    @Id_Havaleh VARCHAR(MAX),
    @TrackingCode VARCHAR(MAX)
AS

--DECLARE @Id_Havaleh NVARCHAR(MAX) = 22240;
--DECLARE @TrackingCode NVARCHAR(MAX) = 13200;

UPDATE dbo.TmpHeadH
SET Nu_Forosh = H.Id_Havaleh,
    Nu_Kharid = '',
    Trans_Name = J.WName,
    Recive_Name = J.PName,
    kind_Save = CASE
                    WHEN ISNULL(H.Items, 0) <> -1 THEN
                        0
                    ELSE
                        2
                END,
    Note = ' . ' + @Id_Havaleh + ' / ' + @TrackingCode,
    User_id = H.User_id,
    Items = CASE
                WHEN ISNULL(H.Items, 0) <> -1 THEN
                    0
                ELSE
                    -1
            END,
    Tarikh_faktor = CAST(GETDATE() AS DATE),
    Tot_Price_forosh = T.TotalAmount,
    Number_bar = 'POS',
    Store_Code = ''
FROM dbo.TmpHeadH H
    OUTER APPLY
(
    SELECT SUM(Tot_Forosh) OVER (PARTITION BY Id_Havaleh) TotalAmount
    FROM dbo.TmpHavaleh
    WHERE Id_Havaleh = H.Id_Havaleh
) AS T
    OUTER APPLY
(
    SELECT TOP (1)
           P.Name PName,
           W.Name WName
    FROM dbo.TmpHavaleh D
        OUTER APPLY
    (SELECT [Name] FROM dbo.Guy WHERE Guy_Code = D.Reciver) AS P
        OUTER APPLY
    (SELECT [Name] FROM dbo.AnbarId WHERE A_Code = D.Sender) AS W
    WHERE D.Id_Havaleh = H.Id_Havaleh
) AS J
WHERE H.Id_Havaleh = @Id_Havaleh;

